{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Sex</th>\n",
       "      <th>Hometown</th>\n",
       "      <th>Height</th>\n",
       "      <th>Weight</th>\n",
       "      <th>ShoeSize</th>\n",
       "      <th>50m</th>\n",
       "      <th>LungVolume</th>\n",
       "      <th>Color</th>\n",
       "      <th>Sport</th>\n",
       "      <th>Literary</th>\n",
       "      <th>Math</th>\n",
       "      <th>PC</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>湖北</td>\n",
       "      <td>163.0</td>\n",
       "      <td>51.0</td>\n",
       "      <td>41.0</td>\n",
       "      <td>7.5</td>\n",
       "      <td>2500.0</td>\n",
       "      <td>蓝</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>河南</td>\n",
       "      <td>171.0</td>\n",
       "      <td>64.0</td>\n",
       "      <td>41.0</td>\n",
       "      <td>7.5</td>\n",
       "      <td>3500.0</td>\n",
       "      <td>蓝</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>云南</td>\n",
       "      <td>182.0</td>\n",
       "      <td>68.0</td>\n",
       "      <td>45.0</td>\n",
       "      <td>7.8</td>\n",
       "      <td>4900.0</td>\n",
       "      <td>蓝</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>广西</td>\n",
       "      <td>172.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>42.0</td>\n",
       "      <td>8.2</td>\n",
       "      <td>4800.0</td>\n",
       "      <td>绿</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>四川</td>\n",
       "      <td>185.0</td>\n",
       "      <td>80.0</td>\n",
       "      <td>44.0</td>\n",
       "      <td>8.5</td>\n",
       "      <td>5100.0</td>\n",
       "      <td>蓝</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Sex Hometown  Height  Weight  ShoeSize  50m  LungVolume Color  Sport  \\\n",
       "0    1       湖北   163.0    51.0      41.0  7.5      2500.0     蓝    1.0   \n",
       "1    1       河南   171.0    64.0      41.0  7.5      3500.0     蓝    0.0   \n",
       "2    1       云南   182.0    68.0      45.0  7.8      4900.0     蓝    1.0   \n",
       "3    1       广西   172.0    66.0      42.0  8.2      4800.0     绿    0.0   \n",
       "4    1       四川   185.0    80.0      44.0  8.5      5100.0     蓝    0.0   \n",
       "\n",
       "   Literary  Math  PC  \n",
       "0       1.0   NaN NaN  \n",
       "1       0.0   NaN NaN  \n",
       "2       0.0   NaN NaN  \n",
       "3       1.0   NaN NaN  \n",
       "4       0.0   NaN NaN  "
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_excel('./data/data.xlsx')\n",
    "df.columns = [\"Index\",\"Sex\",\"Hometown\",\"Height\",\"Weight\",\"ShoeSize\",\"50m\",\"LungVolume\",\"Color\",\n",
    "              \"Sport\",\"Literary\",\"Math\",\"PC\"]\n",
    "df = df.drop(columns=[\"Index\"])\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## SVM\n",
    "2.\t采用SVM设计男女生分类器。采用的特征包含身高、体重、鞋码、50m成绩、肺活量共五个特征。要求：采用平台提供的软件包进行分类器的设计以及测试，尝试不同的核函数设计分类器，采用交叉验证的方式实现对于性能指标的评判（包含SE,SP,ACC和AUC，AUC的计算基于平台的软件包）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [],
   "source": [
    "main_data = df[['Sex','Height','Weight','ShoeSize','50m','LungVolume']].dropna()\n",
    "label =  main_data['Sex']\n",
    "feature = main_data[['Height','Weight','ShoeSize','50m','LungVolume']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Height</th>\n",
       "      <th>Weight</th>\n",
       "      <th>ShoeSize</th>\n",
       "      <th>50m</th>\n",
       "      <th>LungVolume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>163.0</td>\n",
       "      <td>51.0</td>\n",
       "      <td>41.0</td>\n",
       "      <td>7.5</td>\n",
       "      <td>2500.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>171.0</td>\n",
       "      <td>64.0</td>\n",
       "      <td>41.0</td>\n",
       "      <td>7.5</td>\n",
       "      <td>3500.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>182.0</td>\n",
       "      <td>68.0</td>\n",
       "      <td>45.0</td>\n",
       "      <td>7.8</td>\n",
       "      <td>4900.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>172.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>42.0</td>\n",
       "      <td>8.2</td>\n",
       "      <td>4800.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>185.0</td>\n",
       "      <td>80.0</td>\n",
       "      <td>44.0</td>\n",
       "      <td>8.5</td>\n",
       "      <td>5100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204</th>\n",
       "      <td>167.0</td>\n",
       "      <td>58.0</td>\n",
       "      <td>39.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>1200.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>205</th>\n",
       "      <td>168.0</td>\n",
       "      <td>56.0</td>\n",
       "      <td>41.0</td>\n",
       "      <td>6.8</td>\n",
       "      <td>4000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>206</th>\n",
       "      <td>171.0</td>\n",
       "      <td>71.0</td>\n",
       "      <td>41.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>3500.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>207</th>\n",
       "      <td>164.0</td>\n",
       "      <td>47.5</td>\n",
       "      <td>38.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2800.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>208</th>\n",
       "      <td>168.0</td>\n",
       "      <td>45.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>4500.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>208 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Height  Weight  ShoeSize  50m  LungVolume\n",
       "0     163.0    51.0      41.0  7.5      2500.0\n",
       "1     171.0    64.0      41.0  7.5      3500.0\n",
       "2     182.0    68.0      45.0  7.8      4900.0\n",
       "3     172.0    66.0      42.0  8.2      4800.0\n",
       "4     185.0    80.0      44.0  8.5      5100.0\n",
       "..      ...     ...       ...  ...         ...\n",
       "204   167.0    58.0      39.0  8.0      1200.0\n",
       "205   168.0    56.0      41.0  6.8      4000.0\n",
       "206   171.0    71.0      41.0  7.0      3500.0\n",
       "207   164.0    47.5      38.0  9.0      2800.0\n",
       "208   168.0    45.0      40.0  6.0      4500.0\n",
       "\n",
       "[208 rows x 5 columns]"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "feature"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn import datasets\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.svm import LinearSVC\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn import metrics\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn import svm\n",
    "from sklearn.pipeline import make_pipeline\n",
    "from sklearn import preprocessing\n",
    "from sklearn.metrics import roc_auc_score as AUC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_metrics(clf,pred,true):\n",
    "    assert type(pred) == np.ndarray and type(true)==np.ndarray\n",
    "    TP = np.sum(np.logical_and(np.equal(true,1),np.equal(pred,1)))\n",
    "    FN = np.sum(np.logical_and(np.equal(true,1), np.equal(pred,0)))\n",
    "    FP = np.sum(np.logical_and(np.equal(true,0),np.equal(pred,1)))\n",
    "    TN = np.sum(np.logical_and(np.equal(true,0),np.equal(pred,0)))\n",
    "\n",
    "    SE = TP/(TP + FN)\n",
    "    SP = TN/(TN + FP)\n",
    "    \n",
    "    ACC = (TP + TN)/(TP + FN + FP + TN)\n",
    "    auc = AUC(y_test,clf.decision_function(X_test))\n",
    "    \n",
    "    return  [SE,SP,ACC,auc]\n",
    "\n",
    "def plot_roc(clf,X_test,y_test, name,color='red'):\n",
    "    FPR, recall, thresholds = roc_curve(y_test,clf.decision_function(X_test), pos_label=1)\n",
    "    area= AUC(y_test,clf.decision_function(X_test))\n",
    "    \n",
    "    plt.figure(figsize=(7,5))\n",
    "    plt.plot(FPR, recall, color=color,label=f'{name} (AUC = %0.3f)' % area)\n",
    "    plt.plot([0, 1], [0, 1], color='black', linestyle='--')\n",
    "    # 为了让曲线不黏在图的边缘\n",
    "    plt.xlim([-0.05, 1.05])\n",
    "    plt.ylim([-0.05, 1.05])\n",
    "    plt.xlabel('FPR')\n",
    "    plt.ylabel('TPR')\n",
    "    plt.title('ROC curve')\n",
    "    plt.legend(loc=\"lower right\")\n",
    "    plt.savefig(f'{name}_roc.svg')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "linear [0.98301587 0.92738095 0.97131243 0.98853364]\n",
      "poly [0.98865079 0.8702381  0.96393728 0.97811791]\n",
      "rbf [0.98666355 0.88452381 0.96473093 0.98208672]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import KFold\n",
    "X = preprocessing.StandardScaler().fit_transform(feature)\n",
    "kf = KFold(n_splits=5)\n",
    "result = []\n",
    "\n",
    "for kernel in ['linear','poly','rbf']:\n",
    "    for train_index, test_index in kf.split(X):\n",
    "        X_train, y_train = X[train_index], label.values[train_index]\n",
    "        X_test, y_test = X[test_index], label.values[test_index]\n",
    "        clf_svm = svm.SVC(kernel=kernel, C=1).fit(X_train,y_train)\n",
    "        y_pred = clf_svm.predict(X_test)\n",
    "        param = get_metrics(clf_svm,y_pred, y_test)\n",
    "        result.append(param)\n",
    "    print(kernel,np.array(result).mean(axis=0))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9665505226480835\n"
     ]
    }
   ],
   "source": [
    "# 这里可以画一个和加了标准化的模型的对比图\n",
    "# 还可以改变cv的数量画一个图来分析cv对结果的影响\n",
    "clf = svm.SVC(kernel='linear', C=1)\n",
    "scores = cross_val_score(clf, feature, label, cv=5)\n",
    "print(np.mean(scores))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.976074332171893\n"
     ]
    }
   ],
   "source": [
    "clf = make_pipeline(preprocessing.StandardScaler(), svm.SVC(kernel='linear', C=1))\n",
    "scores = cross_val_score(clf, feature, label, cv=5,scoring='accuracy')\n",
    "print(np.mean(scores))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import classification_report\n",
    "from sklearn.metrics import roc_auc_score as AUC\n",
    "from sklearn.metrics import roc_curve\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "sns.set(style=\"darkgrid\", palette=\"muted\", color_codes=True)\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文显示问题-设置字体为黑体\n",
    "plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "           女       0.88      0.93      0.90        15\n",
      "           男       0.99      0.97      0.98        69\n",
      "\n",
      "    accuracy                           0.96        84\n",
      "   macro avg       0.93      0.95      0.94        84\n",
      "weighted avg       0.97      0.96      0.96        84\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X = preprocessing.StandardScaler().fit_transform(feature)\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, label, test_size=.4, random_state=0)\n",
    "clf_svm = svm.SVC(kernel='linear', C=1).fit(X_train,y_train)\n",
    "# scores = clf_svm.score(X_test,y_test)\n",
    "# print(\"ACC:\",scores)\n",
    "target_names = [\"女\",\"男\"]\n",
    "pred = clf_svm.predict(X_test)\n",
    "print(classification_report(y_true=y_test, y_pred=pred, target_names=target_names))\n",
    "\n",
    "FPR_svm, recall_svm, thresholds_svm = roc_curve(y_test,clf_svm.decision_function(X_test), pos_label=1)\n",
    "area_svm = AUC(y_test,clf_svm.decision_function(X_test))\n",
    "plot_roc(clf_svm,X_test,y_test,\"SVM\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 决策树\n",
    "3.\t采用决策树设计男女生分类器。采用的特征包含身高、体重、鞋码、50m成绩、肺活量共五个特征。要求：采用平台提供的软件包进行分类器的设计以及测试，采用交叉验证的方式实现对于性能指标的评判（包含SE,SP,ACC和AUC，AUC的计算基于平台的软件包）。采用决策树设计籍贯分类器，采用的特征包含身高、体重、鞋码、50m成绩、肺活量共五个特征，模型性能评价指标自选。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn import tree\n",
    "from sklearn.model_selection import train_test_split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9728547308705343\n"
     ]
    }
   ],
   "source": [
    "clf = make_pipeline(preprocessing.StandardScaler(), tree.DecisionTreeClassifier())\n",
    "scores = cross_val_score(clf, feature.iloc[:,2:], label, cv=5,scoring='f1')\n",
    "print(np.mean(scores))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_metrics_tree(clf,pred,true):\n",
    "    assert type(pred) == np.ndarray and type(true)==np.ndarray\n",
    "    TP = np.sum(np.logical_and(np.equal(true,1),np.equal(pred,1)))\n",
    "    FN = np.sum(np.logical_and(np.equal(true,1), np.equal(pred,0)))\n",
    "    FP = np.sum(np.logical_and(np.equal(true,0),np.equal(pred,1)))\n",
    "    TN = np.sum(np.logical_and(np.equal(true,0),np.equal(pred,0)))\n",
    "\n",
    "    SE = TP/(TP + FN)\n",
    "    SP = TN/(TN + FP)\n",
    "    \n",
    "    ACC = (TP + TN)/(TP + FN + FP + TN)\n",
    "    auc = AUC(y_test,clf.predict(X_test))\n",
    "    \n",
    "    return  [SE,SP,ACC,auc]\n",
    "\n",
    "def plot_roc_tree(clf,X_test,y_test, name,color='red'):\n",
    "    FPR, recall, thresholds = roc_curve(y_test,clf.predict(X_test), pos_label=1)\n",
    "    area= AUC(y_test,clf.predict(X_test))\n",
    "    \n",
    "    plt.figure(figsize=(7,5))\n",
    "    plt.plot(FPR, recall, color=color,label=f'{name} (AUC = %0.3f)' % area)\n",
    "    plt.plot([0, 1], [0, 1], color='black', linestyle='--')\n",
    "    # 为了让曲线不黏在图的边缘\n",
    "    plt.xlim([-0.05, 1.05])\n",
    "    plt.ylim([-0.05, 1.05])\n",
    "    plt.xlabel('FPR')\n",
    "    plt.ylabel('TPR')\n",
    "    plt.title('ROC curve')\n",
    "    plt.legend(loc=\"lower right\")\n",
    "    plt.savefig(f'{name}_roc.svg')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.96367569 0.90952381 0.95168409 0.93659975]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.model_selection import KFold\n",
    "X = preprocessing.StandardScaler().fit_transform(feature.iloc[:,1:])\n",
    "# np.random.seed(0)\n",
    "kf = KFold(n_splits=5)\n",
    "result = []\n",
    "param = None\n",
    "\n",
    "for train_index, test_index in kf.split(X):\n",
    "    X_train, y_train = X[train_index], label.values[train_index]\n",
    "    X_test, y_test = X[test_index], label.values[test_index]\n",
    "    clf_tree = tree.DecisionTreeClassifier().fit(X_train,y_train)\n",
    "    y_pred = clf_tree.predict(X_test)\n",
    "    param = get_metrics_tree(clf_tree,y_pred, y_test)\n",
    "    result.append(param)\n",
    "print(np.array(result).mean(axis=0))\n",
    "    \n",
    "plot_roc_tree(clf_tree,X_test,y_test,\"Decision Tree\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "           女       0.82      0.93      0.87        15\n",
      "           男       0.99      0.96      0.97        69\n",
      "\n",
      "    accuracy                           0.95        84\n",
      "   macro avg       0.90      0.94      0.92        84\n",
      "weighted avg       0.96      0.95      0.95        84\n",
      "\n"
     ]
    }
   ],
   "source": [
    "X = preprocessing.StandardScaler().fit_transform(feature)\n",
    "X_train, X_test, y_train, y_test = train_test_split(feature.iloc[:,1:], label, \n",
    "                                                    test_size=.4, random_state=0)\n",
    "clf_tree = tree.DecisionTreeClassifier().fit(X_train,y_train)\n",
    "# scores = clf.score(X_test,y_test)\n",
    "# print(\"ACC:\",scores)\n",
    "target_names = [\"女\",\"男\"]\n",
    "pred = clf_tree.predict(X_test)\n",
    "print(classification_report(y_true=y_test, y_pred=pred, target_names=target_names))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['Height', 'Weight', 'ShoeSize', '50m', 'LungVolume'], dtype='object')"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "feature.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(3,)\n",
      "(3,)\n",
      "(3,)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "FPR_tree, recall_tree, thresholds_tree = roc_curve(y_test,clf_tree.predict(X_test), pos_label=1)\n",
    "print(FPR_tree.shape)        # (45,))\n",
    "print(recall_tree.shape)     # (45,))\n",
    "# 此时的threshold就不是一个概率值，而是距离值中的阈值了，所以它可以大于1，也可以为负\n",
    "print(thresholds_tree.shape) # (45,))\n",
    "\n",
    "area_tree = AUC(y_test,clf_tree.predict(X_test))\n",
    "\n",
    "# 画出ROC曲线\n",
    "plt.figure(figsize=(7,5))\n",
    "plt.plot(FPR_tree, recall_tree, color='red'\n",
    "         ,label='Decision Tree (area = %0.2f)' % area_tree)\n",
    "plt.plot([0, 1], [0, 1], color='black', linestyle='--')\n",
    "# 为了让曲线不黏在图的边缘\n",
    "plt.xlim([-0.05, 1.05])\n",
    "plt.ylim([-0.05, 1.05])\n",
    "plt.xlabel('False Positive Rate')\n",
    "plt.ylabel('Recall')\n",
    "plt.title('ROC curve')\n",
    "plt.legend(loc=\"lower right\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 用决策树来判别籍贯"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [],
   "source": [
    "main_data = df[['Hometown','Height','Weight','ShoeSize','50m','LungVolume']].dropna()\n",
    "label_ =  main_data['Hometown'].copy()\n",
    "feature = main_data[['Height','Weight','ShoeSize','50m','LungVolume']]\n",
    "label_[label_ == \"重亲\"] = \"重庆\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn import preprocessing\n",
    "lb = preprocessing.LabelBinarizer()\n",
    "labels = lb.fit_transform(label_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [],
   "source": [
    "label_encoder=preprocessing.LabelEncoder()\n",
    "labels = label_encoder.fit_transform(label_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.13449477351916378\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\model_selection\\_split.py:670: UserWarning: The least populated class in y has only 1 members, which is less than n_splits=5.\n",
      "  warnings.warn((\"The least populated class in y has only %d\"\n"
     ]
    }
   ],
   "source": [
    "clf = make_pipeline(preprocessing.StandardScaler(), tree.DecisionTreeClassifier())\n",
    "scores = cross_val_score(clf, feature, labels, cv=5,scoring='accuracy')\n",
    "print(np.mean(scores))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = preprocessing.StandardScaler().fit_transform(feature)\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, label, \n",
    "                                                    test_size=.3, random_state=0)\n",
    "clf_tree = tree.DecisionTreeClassifier().fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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dE9N353c+5i/6p+4nJyOAwcPMlEhIiKipsY0e1aU+fn54UJcHO4XlWHguACs2bIbT8orpA6LyCCelFdgzZbdGDguAPeLynAhLo6JChERETVJTaKyIhB3zA4NRauW5nhnwpuY8KYnBrr1gRm3zCYTVl1djaspv+L4d7H49/HvUPl7FVaFhHDHcCIiImrKTHPp4toIO2bv/Ppr/JadjfbtLNHXqRc6dWgPi5f4Ykemo/xZJQqKipF28zZKHpehx8svY05AAHcMJyIiouagaSYrNTW3HbMfP36Mq1evYujQobCwsJA6HIPJzMxESUkJXnvtNalDMSjuGE5ERETNWNNPVpqbGTNmIDExESkpKWjZhFdG279/P2bNmoWkpCS4ublJHQ4RERER6R+TlaYkJSUF/fv3x8GDBzFlyhSpwzGo58+fY9CgQejVqxeOHTsmdThEREREpH9MVpqSCRMm4NatW/j555/RokWTWOhNq1OnTsHPzw8XL16Eh4eH1OEQERERkX4xWWkqrly5giFDhiAyMhJjxoyROhyj8fLyQnV1NWJjY6UOhYiIiIj0i8lKUzF69Gg8evQIP/30U7NapvnChQsYOXIkzpw5gzfffFPqcIiIiIhIf5isNAXCC/vZs2fh7e0tdThGN2bMGOTl5SExMbFZJWpERERETRyTlabAy8sLrVq1QnR0tNShSCI5ORmvvfYavvnmG0yePFnqcIiIiIhIP5ismLr//Oc/8PX1RXx8PIYPHy51OJKZPn06Ll++3OSXbCYiIiJqRpismLLq6moMHz4ctra2OHHihNThSCorKwsuLi7Ytm0b5s6dK3U4RERERNRwTFZMWUREBKZMmYKrV682+Z3cdbFgwQKcOHECN2/eRJs2baQOh4iIiIga5kjT34yjiaqqqkJISAjeeustJip/+Oijj/Do0SNs375d6lCIiIiISA+YrJio/fv3Iz09HatWrZI6lEajW7duWLx4MdatW4fi4mKpwyEiIiKiBmKyYoIqKyuxevVqzJ49Gy4uLlKH06j8z//8D6qrq/HPf/5T6lCIiIiIqIGYrJigr776CtnZ2fjwww+lDqXR6dChA5YuXYp//etfyMvLkzocIiIiImoANtibmPLycjg5OWHixIkICwuTOpxG6enTp+jTpw9/RkRERESmjQ32pmbbtm0oKirCihUrpA6l0WrTpg3+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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pydotplus\n",
    "import os     \n",
    "os.environ[\"PATH\"] += os.pathsep + r'C:\\Program Files\\Graphviz\\bin'\n",
    "from IPython.display import Image \n",
    "dot_data = tree.export_graphviz(clf_tree, out_file=None,\n",
    "                                feature_names=feature.columns,\n",
    "                                class_names=[str(i) for i in labels.flatten()],\n",
    "                                filled=True, rounded=True,\n",
    "                                special_characters=True) \n",
    "graph = pydotplus.graph_from_dot_data(dot_data)  \n",
    "Image(graph.create_png()) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((145, 5), (145,))"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape,y_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(208,)"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "labels.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "准确率： 0.178571\n"
     ]
    }
   ],
   "source": [
    "import lightgbm as lgb\n",
    "X = preprocessing.StandardScaler().fit_transform(feature)\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, label_, test_size=.4, random_state=0)\n",
    "\n",
    "clf = lgb.LGBMClassifier(num_leaves=31,\n",
    "                        learning_rate=0.05,\n",
    "                        n_estimators=100)\n",
    "#拟合数据来训练\n",
    "clf = clf.fit(X_train, y_train)\n",
    "#预测\n",
    "y_pred = clf.predict(X_test)\n",
    "#看准确率\n",
    "from sklearn.metrics import accuracy_score\n",
    "print(\"准确率： %f\" % accuracy_score(y_pred,y_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 神经网络\n",
    "1.\t采用BP神经网络设计男女生分类器。采用的特征包括身高、体重、鞋码、50m成绩、肺活量共五个特征，BP神经网络包含一个隐层，隐层结点数为5。要求：自行编写代码完成后向传播算法，采用交叉验证的方式实现对于性能指标的评判（包含SE,SP,ACC和AUC，AUC的计算可以基于平台的软件包）。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from sklearn.metrics import roc_auc_score as AUC\n",
    "from sklearn.metrics import roc_curve\n",
    "from sklearn.metrics import classification_report\n",
    "\n",
    "class BP:\n",
    "    def __init__(self, hidden_nums, n_input, output_nums, learning_rate,iterations=10000, print_cost=False):\n",
    "\n",
    "        self.n_h = hidden_nums\n",
    "        self.n_output = output_nums\n",
    "        self.n_iterations = iterations\n",
    "        self.print_cost = print_cost\n",
    "        self.n_x = n_input           # 输入层节点数\n",
    "        self.learning_rate = learning_rate\n",
    "        self.train_loss = []\n",
    "\n",
    "    def sigmoid(self, x):\n",
    "        return 1.0 / (1 + np.exp(-x))\n",
    "    \n",
    "    def leakyRelu(self, x):\n",
    "        return np.maximum(0.01*x, x)\n",
    "\n",
    "    def initialize_parameters(self, n_x, n_h, n_y):\n",
    "        np.random.seed(2)\n",
    "\n",
    "        # 权重和偏置矩阵\n",
    "        w1 = np.random.randn(n_h, n_x) * 0.01\n",
    "        b1 = np.zeros(shape=(n_h, 1))\n",
    "        w2 = np.random.randn(n_y, n_h) * 0.01\n",
    "        b2 = np.zeros(shape=(n_y, 1))\n",
    "\n",
    "        # 通过字典存储参数\n",
    "        parameters = {'w1': w1, 'b1': b1, 'w2': w2, 'b2': b2}\n",
    "\n",
    "        return parameters\n",
    "\n",
    "    def loss(self, A2, Y):\n",
    "        m = Y.shape[1]      # Y的列数即为总的样本数\n",
    "\n",
    "        # 采用交叉熵（cross-entropy）作为代价函数\n",
    "        logprobs = np.multiply(np.log(A2), Y) + \\\n",
    "            np.multiply((1 - Y), np.log(1 - A2))\n",
    "        cost = - np.sum(logprobs) / m\n",
    "\n",
    "        return cost\n",
    "\n",
    "    def forward(self, X):\n",
    "        w1 = self.parameters[\"w1\"]\n",
    "        w2 = self.parameters[\"w2\"]\n",
    "        b1 = self.parameters[\"b1\"]\n",
    "        b2 = self.parameters[\"b2\"]\n",
    "\n",
    "        Z1 = np.dot(w1, X) + b1  # shape is (n_h x n_x) x (n_x x 1)\n",
    "        A1 = self.leakyRelu(Z1)\n",
    "\n",
    "        Z2 = np.dot(w2, A1) + b2\n",
    "        A2 = self.sigmoid(Z2)   # shape is n_y x 1, n_y is the output node\n",
    "\n",
    "        cache = {'Z1': Z1, 'A1': A1, 'Z2': Z2, 'A2': A2}\n",
    "        return A2, cache\n",
    "\n",
    "    def backward(self, cache):\n",
    "        m = self.Y.shape[1]\n",
    "        w2 = self.parameters[\"w2\"]\n",
    "        A1 = cache[\"A1\"]\n",
    "        A2 = cache[\"A2\"]\n",
    "\n",
    "        dZ2 = A2 - self.Y\n",
    "        # shape is (n_y x 1) x (1 x n_h)\n",
    "        dw2 = (1 / m) * np.dot(dZ2, A1.T)\n",
    "        # shape is n_y x 1\n",
    "        db2 = (1 / m) * np.sum(dZ2, axis=1, keepdims=True)\n",
    "        dZ1 = np.multiply(np.dot(w2.T,dZ2), np.maximum(A1,0.01)) # leakyRelu\n",
    "        # shape is (n_h x 1) x (1 x n_input)\n",
    "        dw1 = (1 / m) * np.dot(dZ1, self.X.T)\n",
    "\n",
    "        db1 = (1 / m) * np.sum(dZ1, axis=1, keepdims=True)  # shape is n_h x 1\n",
    "\n",
    "        grads = {'dw1': dw1, 'db1': db1, 'dw2': dw2, 'db2': db2}\n",
    "        return grads\n",
    "\n",
    "    def update_parameters(self, grads):\n",
    "        w1 = self.parameters['w1']\n",
    "        b1 = self.parameters['b1']\n",
    "        w2 = self.parameters['w2']\n",
    "        b2 = self.parameters['b2']\n",
    "\n",
    "        dw1 = grads['dw1']\n",
    "        db1 = grads['db1']\n",
    "        dw2 = grads['dw2']\n",
    "        db2 = grads['db2']\n",
    "\n",
    "        # 更新参数\n",
    "        self.parameters['w1'] = w1 - dw1 * self.learning_rate\n",
    "        self.parameters['b1'] = b1 - db1 * self.learning_rate\n",
    "        self.parameters['w2'] = w2 - dw2 * self.learning_rate\n",
    "        self.parameters['b2'] = b2 - db2 * self.learning_rate\n",
    "\n",
    "    def train(self, X, Y):\n",
    "        self.X = X.T\n",
    "        self.Y = Y.T\n",
    "        self.parameters = self.initialize_parameters(\n",
    "            self.n_x, self.n_h, self.n_output)\n",
    "        # 梯度下降循环\n",
    "        for i in range(0, self.n_iterations):\n",
    "            A2, cache = self.forward(self.X)\n",
    "            cost = self.loss(A2, self.Y)\n",
    "            grads = self.backward(cache)\n",
    "            self.update_parameters(grads)\n",
    "            if self.print_cost and i % 10 == 0:\n",
    "                print('迭代第%i次，loss：%f' % (i, cost))\n",
    "            self.train_loss.append(cost)\n",
    "        output = A2.copy()\n",
    "        output = np.where(output > 0.5,1,output)\n",
    "        output = np.where(output <= 0.5,0,output)\n",
    "        output = output.astype(np.int)\n",
    "        count = np.sum(output == self.Y)\n",
    "\n",
    "        acc = count / len(self.Y.flatten()) * 100\n",
    "        print('train 准确率：%.2f%%' % acc)\n",
    "\n",
    "        SE,SP = self.metrics(self.Y,output,False)\n",
    "\n",
    "        FPR,recall,area = self.ROC(self.Y,A2)\n",
    "        param = {\"FPR\":FPR,\"recall\":recall,\"acc\":acc,\"SE\":SE,\"SP\":SP,\"auc\":area}\n",
    "        return param\n",
    "    \n",
    "    def predict(self, x_test, y_test):\n",
    "        x_test = x_test.T\n",
    "        y_test = y_test.T\n",
    "        A2, _ = self.forward(x_test)\n",
    "        cost = self.loss(A2, y_test)\n",
    "        \n",
    "        output = A2.copy()\n",
    "        output = np.where(output > 0.5,1,output)\n",
    "        output = np.where(output <= 0.5,0,output)\n",
    "        output = output.astype(np.int)\n",
    "        count = np.sum(output == y_test)\n",
    "        acc = count / len(y_test.flatten()) * 100\n",
    "        print('test 准确率：%.2f%%' % acc)\n",
    "        SE,SP = self.metrics(y_test,output)\n",
    "\n",
    "        FPR,recall,area = self.ROC(y_test,A2)\n",
    "        param = {\"FPR\":FPR,\"recall\":recall,\"acc\":acc,\"SE\":SE,\"SP\":SP,\"auc\":area}\n",
    "        return param\n",
    "\n",
    "    def metrics(self, true, pred,show_report=True):\n",
    "        assert type(true) == np.ndarray\n",
    "        TP = np.sum(np.logical_and(np.equal(true,1),np.equal(pred,1)))\n",
    "        FN = np.sum(np.logical_and(np.equal(true,1), np.equal(pred,0)))\n",
    "        FP = np.sum(np.logical_and(np.equal(true,0),np.equal(pred,1)))\n",
    "        TN = np.sum(np.logical_and(np.equal(true,0),np.equal(pred,0)))\n",
    "\n",
    "        SE = TP/(TP + FN)\n",
    "        SP = TN/(TN + FP)\n",
    "\n",
    "        print(f\"ACC:{(TP + TN)/(TP + FN + FP + TN) * 100}\\t Recall(SE):{SE * 100}\\t SP:{SP * 100} \")\n",
    "        target_names = [\"女\",\"男\"]\n",
    "        if show_report:\n",
    "            print(classification_report(y_true=true.T, y_pred=pred.T,target_names=target_names))# \n",
    "        return SE, SP\n",
    "        \n",
    "\n",
    "    def ROC(self, true, A2):\n",
    "        FPR, recall, thresholds = roc_curve(true.T,A2.T, pos_label=1)\n",
    "        area = AUC(true.T, A2.T)\n",
    "        return FPR,recall,area\n",
    "    \n",
    "    def get_train_loss(self):\n",
    "        return self.train_loss\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train 准确率：96.77%\n",
      "ACC:96.7741935483871\t Recall(SE):97.9381443298969\t SP:92.5925925925926 \n",
      "test 准确率：96.43%\n",
      "ACC:96.42857142857143\t Recall(SE):97.10144927536231\t SP:93.33333333333333 \n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           女       0.88      0.93      0.90        15\n",
      "           男       0.99      0.97      0.98        69\n",
      "\n",
      "    accuracy                           0.96        84\n",
      "   macro avg       0.93      0.95      0.94        84\n",
      "weighted avg       0.97      0.96      0.96        84\n",
      "\n"
     ]
    }
   ],
   "source": [
    "\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn import preprocessing\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "df = pd.read_excel('./data/data.xlsx')\n",
    "df.columns = [\"Index\", \"Sex\", \"Hometown\", \"Height\", \"Weight\", \"ShoeSize\", \"50m\", \"LungVolume\", \"Color\",\n",
    "              \"Sport\", \"Literary\", \"Math\", \"PC\"]\n",
    "df = df.drop(columns=[\"Index\"])\n",
    "main_data = df[['Sex', 'Height', 'Weight',\n",
    "                'ShoeSize', '50m', 'LungVolume']].dropna()\n",
    "label = main_data['Sex']\n",
    "feature = main_data[['Height', 'Weight', 'ShoeSize', '50m', 'LungVolume']]\n",
    "\n",
    "X = preprocessing.StandardScaler().fit_transform(feature)\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, label, test_size=.4, random_state=0)\n",
    "\n",
    "network = BP(hidden_nums=5, n_input=5, output_nums=1, learning_rate=0.1,print_cost=False,iterations=500)\n",
    "param_train = network.train(X_train, y_train.values.reshape(-1, 1))\n",
    "param_test = network.predict(X_test, y_test.values.reshape(-1, 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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8OBBSbGt7PPnz5ff79e0adOOe304HNbXvvY1+Xw++f1+ff/735cktbS0HHPtP6/uWLVqlX74wx+esJbnn39e3d3duvvuu7Vz504988wz8vl8euyxx7RmzZrT/C8EMFAQygAktb/+9a9auHChJGndunWqqqpSWlqaMjMzj3v9hg0bVF9fL6/XK5fLpRdffFGS9M1vflN/+MMfeq8zTVN33XWXduzY0fu1N998U6NGjTphLeFwWL/85S/lcDgUCAT02muvyev1qrKy8qhDkAHgeAhlAJLa3XffrRUrVigUCmn58uXatGmTbrzxRjU0NOiGG27QlVdeqcWLF/dev2TJEt1yyy2SJKfTKYfDoXA4rEceeURVVVW91xmGoS984Qt68MEH5fP51NXVpaVLl+q5557TDTfc0Psxb948SVJ3d7cKCws1aNAgtbW1afXq1brooou0Zs0adXZ2aujQoZJ01OGhAPBRnOgPIKkVFRXp1VdflWmaev311/XGG2/I6XTq1ltv1Z///GdJsTMHJamurk6vvPKK7r777t6fz8nJUXt7u9LS0nThhRdq8eLFuvnmmyVJM2bM0PLly/XKK6/I7/frpptu0re+9a3en3388cc1cuRISbGnHKxdu1abN2/Wli1bVFZWpuzsbL3wwguKRqO68cYbVVtbq4yMDL388svyer1n638RgCRBKAOQtFpaWlRXVyeXy6Xhw4fr97//vbxerxoaGpSVldV7XSQSkd1u109+8hOZpqlAIKBXX31VO3fulM/n01133aWRI0dqwoQJx5xF9B//8R9qb2/X7bffrkWLFunll1/W6tWr9cMf/lBvv/227r//fkmS2+3W0KFDVVdXJ7fbraysLGVnZ2vDhg2688479dWvflUPPfSQvvCFLxDIABwXoQxA0tq1a5eef/55bdq0SY899pgWLFggu92u9vZ2dXR06MYbb5QUmzJ84IEHdPjwYU2bNk0Oh0Pbt29XeXm59u7dq5kzZ2rmzJnHvUdra6va2tr04osvKjMzU4FAQHa7XZL0l7/8pTf8HTlyRLm5uXr44Yf11FNP6YEHHtCyZcsUDoe1detWSVJtba2GDRt2Fv7PAEhGhDIASWvKlCmaMmWKLr/8cs2YMUMzZsyQJH3729/WmjVr9MMf/lBjx46VJAUCAZWXl+uxxx6T0+nUv//7v0uKjbZVVlaeMJT96le/ksvl0je/+U1JsVO/N27cKElHjca1tbXpN7/5jdrb22Wapu6//345HA798Y9/1OzZs9XW1ia/36+cnJy4/f8AkNxY6A8gpbz22muqqqrSr/7/9u7nFbYwjuP4+xhh5EcTQ6EkpXAWmpFhO8V/oGxshhSyGMpmjtw0pSzUxIkFpdTJkqwUk8XkZPwH2NrYqUkzOc3cxc2Uq7t077h9Xtvnx+l8V59znuecZ3+feDyO67oA+P1+2tvbP/WPRqOk02kKhcKntqenJ66vr1lYWAB+BbtMJkNnZye3t7cf+pqmieM4NDY2cnFxwezsLD09PdTV1TE+Ps7i4iKRSOQL7lhE/hcKZSLyXygUCmxtbbG3t8fu7i69vb3Yts3q6irpdPqP41paWhgbG+Pw8BCAbDZLLpejWCxiWRZLS0s0NDRQLBZZW1tjcnISy7JIJBLlZcl3VvBj8wAAAY1JREFUz8/PmKbJzMwM6+vrmKYJwMTEBHd3d0Sj0a8rgIh8e74f739OFBH5hg4ODri6uuLl5YWamho2NzcJBAIABAIBwuFw+Y1VVVUVp6enRCIR2traynOEQiGSySSe55FKpQiHwzw+PuK6LolEgoeHB5aXlwkGg6ysrNDU1ERfXx/z8/PU1tYyMDCAz+ejubkZv9+P67rEYjHu7+/J5/Mkk0lisRipVIrBwUE6Ojr+VblEpIJpT5mIfFs3NzdkMhmy2SyXl5ecnJxwfn6Oz+fDMAw8zyOfz5PL5Tg+PiYUCuF5Hm9vbx/maW1t5ejoiI2NDbq6uhgaGsIwDIaHh3l9fSUejzM9Pc3U1FR5zOjoKI7jYFkWIyMjdHd3Mzc3R39/Pzs7OwSDQc7OznAch+3t7fLXnbZtY9s29fX1f7tcIlLhjNLv54iIiHwjnudRXf21z5elUgnDML70GiIiCmUiIiIiFUAb/UVEREQqgEKZiIiISAVQKBMRERGpAAplIiIiIhVAoUxERESkAvwEpLXpaC+dZRsAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 画训练曲线\n",
    "plt.figure(figsize=(10,7))\n",
    "plt.plot(network.get_train_loss(),linestyle='-',lw=2)\n",
    "plt.xlabel(\"迭代次数\")\n",
    "plt.ylabel(\"loss\")\n",
    "plt.savefig(\"BP_train_loss.svg\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 画出ROC曲线\n",
    "plt.figure(figsize=(10,7))\n",
    "plt.plot(param_test[\"FPR\"], param_test[\"recall\"], color='red',\n",
    "         label='BP network (AUC = %0.2f)' % param_test['auc'],linestyle='-')\n",
    "\n",
    "plt.plot([0, 1], [0, 1], color='black', linestyle='--')\n",
    "# 为了让曲线不黏在图的边缘\n",
    "plt.xlim([-0.05, 1.05])\n",
    "plt.ylim([-0.05, 1.05])\n",
    "plt.xlabel('FPR')\n",
    "plt.ylabel('TPR')\n",
    "plt.title('ROC curve')\n",
    "plt.legend(loc=\"lower right\")\n",
    "plt.savefig(\"bp_result.svg\")\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmUAAAG6CAYAAABJDzFAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd3hT1f8H8HeS7hZKgdKyBEGGOADBHy2UsvdQQJZQVtmWUTaKOECGMgXkS1VQEEQZCoggQtkbERDZIAo0N9Ay2oyu5P7+KC2rlI4k5yZ5v57Hxza9yf3QS8q7n3PuOSpZlmUQERERkVBq0QUQEREREUMZERERkSIwlBEREREpAEMZERERkQIwlBEREREpAEMZERERkQIwlBGRw1iwYAFq1qyJ0NBQ1K9fH0uXLs362o8//oiwsDDUq1cPK1euzHr8zJkzaNOmDcLCwjB37lwRZRMR5Yqb6AKIiPKiR48eGDNmDK5fv47OnTujbt268PDwwKxZs/DDDz/Azc0NnTp1QkhICMqVK4fhw4djwoQJCA8PR8+ePfH6668jLCxM9B+DiOgJDGVE5JDKlCmD6tWr48qVK5AkCWFhYXj++ecBAPXr18euXbvw8ssvw8vLC02bNgUANG3aFAcPHmQoIyJF4vAlETmkuLg4nD59GhUqVMC1a9dQqlSprK+VLFkSN27cwMWLF7OCGgB07NgR3bp1y/F1N27ciCZNmiAsLAxfffUVAODw4cOIiIjIOmbChAlYv3591serVq3CxIkT0bx5cwDApUuX0LFjx6zjFy1ahCVLlgAATp06hTfffBOhoaF4//33wU1ViCgTQxkROZSVK1ciNDQUzZs3R//+/VG1alWkpKTAw8Mj6xh3d3ckJycjMTERPj4+WY8XL14cZcuWfeprX758GbNnz8bKlSuxadMmfPPNN7hy5coza4qJicFrr72GH3/8EQDwwgsvIDU1FQkJCQCAvXv3okWLFkhNTcWYMWMwY8YM7Nq1C9evX8f27dvz+60gIifDUEZEDqVHjx6IjY2Fr68vGjRoAADw9vZGSkpK1jGpqanw9vaGm5sbUlNTsx4/cuQINmzY8NTXPnDgABo2bIjg4GAEBARg3759qFChwhPHPd7dCg8PR+fOnVGkSJGsx5o2bYq9e/fi7t27SE1NRfny5fHPP//gxo0biIyMROPGjfH333/j0qVL+f5eEJFz4ZwyInI43t7e6NixI1atWoX33nsPZcuWxYkTJ7K+HhcXh1dffRWlSpXCtm3bsh4/duwY9Hp9rs+zb9++R4ZFM+l0ukc+r1GjxhPHtGzZEjExMXB3d0eTJk0AZIS55557Dlu2bAEApKSkwGw257oeInJu7JQRkUPq2bMnNm7cCKPRiIYNG2L//v24cuUKrl27hv3796NBgwaoV68erl+/joMHD8JgMGDr1q2oU6fOU18zNDQUu3fvhk6ng16vx5QpU2AymeDn5wdJkiDLMs6fP4+jR48+s76qVavi+vXr2LlzJ1q2bAkAqFChApKTk3Hs2DFYLBaMHTsWa9assdr3hIgcGztlROSQSpcujdq1a2PTpk3o2rUrxo0bh169esFisWDkyJFZw44xMTF4//33kZCQgM6dO2cNeWbnhRdewMiRI9G9e3dYLBb06dMHL730EmRZRuXKldG9e3eUKVMmq/P1LCEhIdi5cycqVqwIAPDw8MDcuXPxwQcfICEhAaGhoejevXvBvxlE5BRUMm/9ISIiIhKOw5dERERECsBQRkRERKQADGVERERECsBQRkRERKQADGVERERECsBQRkRERKQATrFO2Z07Blgstl3Zo1gxPyQk5H4lcLI9XhPl4TVRJl4X5eE1USZbXxe1WoWAAN+nft0pQpnFIts8lGWeh5SF10R5eE2UiddFeXhNlEnkdeHwJREREZECMJQRERERKQBDGREREZECMJQRERERKQBDGREREZECMJQRERERKQBDGREREZECMJQRERERKQBDGREREZECMJQRERERKQBDGREREZECMJQRERERKYDNQ1laWhoGDBiAw4cP53hcTEwMOnTogMjISMTHx9u6LCIiIiJFcbPli6enp2Po0KHQarU5Hnf8+HHExsZi7dq1OHLkCObPn48pU6bYsjTKp3+nfYEiv6wTXQYAIFGtgmyRRZdBD+E1USZeF+XhNSk4GTJkWB78J2d8Dlie+jX5/teQ9XjG50mWdJxOSceLvQahxpjJwv5MNg1lADBlyhTMmzcvx2P279+Ptm3bQqPRICQkBNOmTcvTOYoV8ytIibkWGFjILudRssRf1yP42jlI5V4UXQoAQKVWiS6BHsNroky8Lsrj8NdElp8Rfu6HI/nB58g8Xs4uOD3+2IPnPhK0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\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 画出ROC曲线\n",
    "plt.figure(figsize=(10,7))\n",
    "plt.plot(FPR_svm,recall_svm,label='SVM linear (area = %0.2f)' % area_svm,color='b',linestyle='-')\n",
    "plt.plot(FPR_tree, recall_tree, color='green',label='Decision Tree (area = %0.2f)' % area_tree,linestyle='-')\n",
    "plt.plot(param_test['FPR'], param_test['recall'], color='red',label='BP network (area = %0.2f)' %  param_test['auc'],linestyle='-')\n",
    "\n",
    "plt.plot([0, 1], [0, 1], color='black', linestyle='--')\n",
    "# 为了让曲线不黏在图的边缘\n",
    "plt.xlim([-0.05, 1.05])\n",
    "plt.ylim([-0.05, 1.05])\n",
    "plt.xlabel('FPR')\n",
    "plt.ylabel('TPR')\n",
    "plt.title('ROC curve')\n",
    "plt.legend(loc=\"lower right\")\n",
    "plt.savefig('result_all.svg')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train 准确率：97.59%\n",
      "ACC:97.59036144578313\t Recall(SE):99.24242424242425\t SP:91.17647058823529 \n",
      "test 准确率：97.62%\n",
      "ACC:97.61904761904762\t Recall(SE):100.0\t SP:87.5 \n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           女       1.00      0.88      0.93         8\n",
      "           男       0.97      1.00      0.99        34\n",
      "\n",
      "    accuracy                           0.98        42\n",
      "   macro avg       0.99      0.94      0.96        42\n",
      "weighted avg       0.98      0.98      0.98        42\n",
      "\n",
      "train: 5-fold acc: 97.59036144578313\n",
      "train: 5-fold SE: 0.9924242424242424\n",
      "train: 5-fold SP: 0.9117647058823529\n",
      "train: 5-fold auc: 0.9850713012477719\n",
      "\n",
      "\n",
      "test: 5-fold acc: 97.61904761904762\n",
      "test: 5-fold SE: 1.0\n",
      "test: 5-fold SP: 0.875\n",
      "test: 5-fold auc: 0.9963235294117647\n",
      "train 准确率：99.40%\n",
      "ACC:99.3975903614458\t Recall(SE):100.0\t SP:97.14285714285714 \n",
      "test 准确率：95.24%\n",
      "ACC:95.23809523809523\t Recall(SE):94.28571428571428\t SP:100.0 \n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           女       0.78      1.00      0.88         7\n",
      "           男       1.00      0.94      0.97        35\n",
      "\n",
      "    accuracy                           0.95        42\n",
      "   macro avg       0.89      0.97      0.92        42\n",
      "weighted avg       0.96      0.95      0.95        42\n",
      "\n",
      "train: 5-fold acc: 98.49397590361446\n",
      "train: 5-fold SE: 0.9962121212121212\n",
      "train: 5-fold SP: 0.9415966386554622\n",
      "train: 5-fold auc: 0.98610162663261\n",
      "\n",
      "\n",
      "test: 5-fold acc: 96.42857142857142\n",
      "test: 5-fold SE: 0.9714285714285714\n",
      "test: 5-fold SP: 0.9375\n",
      "test: 5-fold auc: 0.9961209483793518\n",
      "train 准确率：97.59%\n",
      "ACC:97.59036144578313\t Recall(SE):98.46153846153847\t SP:94.44444444444444 \n",
      "test 准确率：97.62%\n",
      "ACC:97.61904761904762\t Recall(SE):100.0\t SP:83.33333333333334 \n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           女       1.00      0.83      0.91         6\n",
      "           男       0.97      1.00      0.99        36\n",
      "\n",
      "    accuracy                           0.98        42\n",
      "   macro avg       0.99      0.92      0.95        42\n",
      "weighted avg       0.98      0.98      0.98        42\n",
      "\n",
      "train: 5-fold acc: 98.19277108433734\n",
      "train: 5-fold SE: 0.9923465423465423\n",
      "train: 5-fold SP: 0.9425459072517895\n",
      "train: 5-fold auc: 0.987386839407495\n",
      "\n",
      "\n",
      "test: 5-fold acc: 96.82539682539682\n",
      "test: 5-fold SE: 0.980952380952381\n",
      "test: 5-fold SP: 0.9027777777777778\n",
      "test: 5-fold auc: 0.9958707557096913\n",
      "train 准确率：97.01%\n",
      "ACC:97.0059880239521\t Recall(SE):99.24242424242425\t SP:88.57142857142857 \n",
      "test 准确率：97.56%\n",
      "ACC:97.5609756097561\t Recall(SE):97.05882352941177\t SP:100.0 \n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           女       0.88      1.00      0.93         7\n",
      "           男       1.00      0.97      0.99        34\n",
      "\n",
      "    accuracy                           0.98        41\n",
      "   macro avg       0.94      0.99      0.96        41\n",
      "weighted avg       0.98      0.98      0.98        41\n",
      "\n",
      "train: 5-fold acc: 97.89607531924104\n",
      "train: 5-fold SE: 0.9923659673659673\n",
      "train: 5-fold SP: 0.9283380018674136\n",
      "train: 5-fold auc: 0.987293376308868\n",
      "\n",
      "\n",
      "test: 5-fold acc: 97.00929152148665\n",
      "test: 5-fold SE: 0.9783613445378152\n",
      "test: 5-fold SP: 0.9270833333333334\n",
      "test: 5-fold auc: 0.9969030667822685\n",
      "train 准确率：98.20%\n",
      "ACC:98.20359281437125\t Recall(SE):99.28057553956835\t SP:92.85714285714286 \n",
      "test 准确率：95.12%\n",
      "ACC:95.1219512195122\t Recall(SE):100.0\t SP:85.71428571428571 \n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           女       1.00      0.86      0.92        14\n",
      "           男       0.93      1.00      0.96        27\n",
      "\n",
      "    accuracy                           0.95        41\n",
      "   macro avg       0.97      0.93      0.94        41\n",
      "weighted avg       0.95      0.95      0.95        41\n",
      "\n",
      "train: 5-fold acc: 97.95757881826708\n",
      "train: 5-fold SE: 0.9924539249719105\n",
      "train: 5-fold SP: 0.9283846872082165\n",
      "train: 5-fold auc: 0.9892180515095816\n",
      "\n",
      "\n",
      "test: 5-fold acc: 96.63182346109176\n",
      "test: 5-fold SE: 0.9826890756302522\n",
      "test: 5-fold SP: 0.9130952380952382\n",
      "test: 5-fold auc: 0.9943478502512116\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import KFold\n",
    "X = preprocessing.StandardScaler().fit_transform(feature)\n",
    "kf = KFold(n_splits=5)\n",
    "result_train = {\"acc\":[],\"SE\":[],\"SP\":[],'auc':[]}\n",
    "result_test = {\"acc\":[],\"SE\":[],\"SP\":[],'auc':[]}\n",
    "for train_index, test_index in kf.split(X):\n",
    "    X_train, y_train = X[train_index], label.values[train_index]\n",
    "    X_test, y_test = X[test_index], label.values[test_index]\n",
    "    network = BP(hidden_nums=5, n_input=5, output_nums=1, learning_rate=0.1,print_cost=False,iterations=500)\n",
    "    param_train = network.train(X_train, y_train.reshape(-1, 1))\n",
    "#     FPR_bp,recall_bp,area_bp,acc = network.predict(X_test, y_test.reshape(-1, 1))\n",
    "    param_test = network.predict(X_test, y_test.reshape(-1, 1))\n",
    "    result_train[\"acc\"].append(param_train[\"acc\"])\n",
    "    result_train[\"SP\"].append(param_train[\"SP\"])\n",
    "    result_train[\"SE\"].append(param_train[\"SE\"])\n",
    "    result_train[\"auc\"].append(param_train[\"auc\"])\n",
    "    \n",
    "    result_test[\"acc\"].append(param_test[\"acc\"])\n",
    "    result_test[\"SP\"].append(param_test[\"SP\"])\n",
    "    result_test[\"SE\"].append(param_test[\"SE\"])\n",
    "    result_test[\"auc\"].append(param_test[\"auc\"])\n",
    "    \n",
    "    for key in result_train.keys():\n",
    "        print(f\"train: 5-fold {key}:\",np.mean(np.array(result_train[key])))\n",
    "    print(\"\\n\")\n",
    "    for key in result_test.keys():\n",
    "        print(f\"test: 5-fold {key}:\",np.mean(np.array(result_test[key])))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
